package es.uc3m.setichat.chat;

import java.text.SimpleDateFormat;
import java.util.ArrayList;

import es.uc3m.setichat.R;
import android.app.Activity;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;


public class ViewMessageChat extends ArrayAdapter<MensajeChat>{
	protected Activity context;
    protected ArrayList <MensajeChat> datosMensaje;
	
	public ViewMessageChat(Activity context, ArrayList<MensajeChat> contenidoMensaje) {
		super(context, R.layout.chat_raw, contenidoMensaje);
		this.context=context;
		this.datosMensaje=contenidoMensaje;
	}
	
	static class ViewHolder {
    	LinearLayout MensajeContenedor;
        TextView MensajeTexto;
        TextView MensajeFecha;
    }
	
	@Override
	public View getView(int position, View convertView, final ViewGroup parent){		
		
		View item = convertView;
		final ViewHolder holder;
		
		  if(item == null)
	        {
	            LayoutInflater inflater = context.getLayoutInflater();
	            item = inflater.inflate(R.layout.chat_raw, null);
	            holder = new ViewHolder();
	            
	            holder.MensajeTexto = (TextView)item.findViewById(R.id.MensajeText);
	            holder.MensajeFecha = (TextView)item.findViewById(R.id.MensajeDate);
	            holder.MensajeContenedor = (LinearLayout)item.findViewById(R.id.MensajeContainer);
	            item.setTag(holder);
	        }
	        else
	        {
	            holder = (ViewHolder)item.getTag();
	        }
		MensajeChat mensaje = datosMensaje.get(position);    
       
		holder.MensajeTexto.setText(mensaje.getMensaje());
        
        SimpleDateFormat sdf = new SimpleDateFormat ("hh:mm");	
		String fechaString = sdf.format(mensaje.getFechaMensaje());        
        holder.MensajeFecha.setText(fechaString);
		
		RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        if(mensaje.getRecibido()){        	
        	holder.MensajeContenedor.setGravity(Gravity.LEFT);
        	params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
        	holder.MensajeContenedor.setLayoutParams(params);
        	holder.MensajeContenedor.setBackgroundColor(0xffe2e2e2);
        }
        else{        	
        	holder.MensajeContenedor.setGravity(Gravity.RIGHT);
        	params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
        	holder.MensajeContenedor.setLayoutParams(params);
        	holder.MensajeContenedor.setBackgroundColor(0xffadd9c6);
        }
		return item;
		
	}
}
